<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// 默认值：

// let num = 5;
// let result = num || 1;// 变量的默认值

// function fn1(a,b){
//     a = a || 1;// 参数的默认值
//     b = b || 1;// 参数的默认值
//     console.log( a * b );
// }
// fn1();// 1
// fn1(2);// 2
// fn1(2,3);// 6

// 解构赋值时设置默认值：
let obj = {
    name: '李四',
    age: 24,
    // sex: '女'
}
let arr = [7,8,9];

let {name,age,sex='妖'} = obj;
console.log( name,age,sex );

let [a,b,c,d=10] = arr;
console.log( a,b,c,d );

// 形参设置默认值：
function fn2(a=1,b=1){
    console.log( a * b );
}
fn2();// 1
fn2(3);// 3
fn2(3,4);// 12


// 参数解构赋值和默认值结合使用：
let data = {
    name: '张三',
    age: 23,
    // sex: '男'
}

// 给形参设置了默认值
function fn3({name='老王',age=30,sex='妖'}){
    console.log( `大家好，我叫${name}，今年${age}岁，性别${sex}` )
}
fn3(data);// {name='老王',age=30,sex='妖'} = data;
// fn3();// {name='老王',age=30,sex='妖'} = undefined 报错
fn3({});// {name='老王',age=30,sex='妖'} = {}

// 给形参设置了默认值，给实参也设置了默认值
function fn4({name='老王',age=30,sex='妖'}={}){
    console.log( `大家好，我叫${name}，今年${age}岁，性别${sex}` )
}
fn4(data);// {name='老王',age=30,sex='妖'} = data;
fn4();// {name='老王',age=30,sex='妖'} = {}


</script>
</body>
</html>